package com.hualude.roadsign.service;

import com.hualude.roadsign.dto.*;

import java.util.List;

/**
 * Created by xu_jiaHui on 2017/8/18.
 */
public interface GuardrailManageService {

    /**
     * @Description: 获取护栏用于DT展示
     * @author xu_jiaHui
     * @date 2017/8/17 12:54
     */
    public DTResponseDto getGuardrail4DT(DTRequestDto dtRequestDto,
                                         String actorIds,
                                         Integer orgId,
                                         Boolean audit,
                                         String startRoad,
                                         String endRoad,
                                         String roadName) throws Exception;

    /**
     * @Description: 删除护栏
     * @author xu_jiaHui
     * @date 2017/8/17 12:53
     */
    public Integer deleteGuardrail(String solarEnergyIds) throws Exception;

    /**
     * @Description: 审核护栏
     * @author xu_jiaHui
     * @date 2017/8/17 12:54
     */
    public Integer auditGuardrail(String solarEnergyIds) throws Exception;


    /**
     * @Description: 获取起始路名
     * @author xu_jiaHui
     * @date 2017/8/17 12:55
     */
    public List<String> getStartRoadByRoadName(String roadName, String actorIds, Integer orgId) throws Exception;

    /**
     * @Description: 获取结束路名
     * @author xu_jiaHui
     * @date 2017/8/17 12:55
     */
    public List<String> getEndRoadByStartRoad(String guardrailRoadName, String startRoad, String actorIds, Integer orgId) throws Exception;


    /**
     * @Description: 添加护栏
     * @author xu_jiaHui
     * @date 2017/8/17 19:35
     */
    public Integer addGuardrail(GuardrailDto guardrailDto) throws Exception;

    /**
     * @Description: 更新护栏
     * @author xu_jiaHui
     * @date 2017/8/18 14:33
     */
    public Integer updateGuardrail(GuardrailDto guardrailDto) throws Exception;

    /**
     * @Description: 根据护栏id获取坐标集
     * @author xu_jiaHui
     * @date 2017/8/18 15:05
     */
    public List<CoordinateDto> getCoordinatesById(Integer guardrailId, Integer type) throws Exception;

    /**
     * @Description: 根据orgId, actorId获取城市4App
     * @author xu_jiaHui
     * @date 2017/10/9 15:37
     */
    public List<String> getCity4Guardrail(String actorIds, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 根据City获取路口4App
     * @author xu_jiaHui
     * @date 2017/10/9 15:38
     */
    public List<String> getStartRoadByCity(String city, String actorIds, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 通过起始路段获取截止路APP段
     * @author xu_jiaHui
     * @date 2017/8/14 20:33
     */
    public List<String> getSectionByStartRoad4App(String city, String roadName, String actorIds, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 获取护栏信息用于列表展示4App
     * @author Jiang_Zhengyu
     * @date 2017/10/13 17:07
     */
    public List<GuardrailDto> getGuardrail4APP(String actorIds,
                                       Integer orgId,
                                       Integer mCount,
                                       Integer mSize,
                                       String city,
                                       String startRoad,
                                       String endRoad,
                                       String roadName) throws Exception;
    /**
     * @Description: 通过Id获取护栏信息
     * @author Jiang_Zhengyu
     * @date 2017/10/13 19:45
     */
    public GuardrailDto getGuardrailById(Integer guardrailId) throws Exception;

    /**
     * @Description: 根据城市获取路名
     * @author Jiang_Zhengyu
     * @date 2017/10/14 22:57
     */
    public List<String> getRoadName4GuardrailByCity(String actorIds, Integer orgId, String city, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 根据城市 路名 获取起始路名
     * @author Jiang_Zhengyu
     * @date 2017/10/14 22:58
     */
    public List<String> getStartRoadByRoadName4App(String city, String roadName, String actorIds, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 根据城市路名起始路名获取结束路名
     * @author Jiang_Zhengyu
     * @date 2017/10/14 22:58
     */
    public List<String> getEndRoadByStartRoad4App(String city, String roadName, String startRoad, String actorIds, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: app地图
     * @Author: shao-yikun
     * @Date: 2017/11/23 上午9:21
     */
    public List<GuardrailDto> getGuardrail4Map4App(Integer orgId,
                                                   String actorIds,
                                                   double neLongitude,
                                                   double neLatitude,
                                                   double swLongitude,
                                                   double swLatitude) throws Exception;
}
